#include "log.h"

#include <spdlog/sinks/basic_file_sink.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/spdlog.h>

#include <memory>

namespace chat {
std::shared_ptr<spdlog::logger> g_default_logger;

void initLogger(int32_t level, bool mode, const std::string &file) {
    if (mode == false) {
        g_default_logger = spdlog::stdout_color_mt(
            "stdout-log");  // 普通日志器，日志输出到 标准输出 中

        g_default_logger->flush_on(spdlog::level::level_enum::trace);
        g_default_logger->set_level(spdlog::level::level_enum::trace);
    } else {
        g_default_logger = spdlog::basic_logger_mt(
            "file-log", file.c_str());  // 文件日志器，日志输出到 logfile 中

        g_default_logger->flush_on((spdlog::level::level_enum)level);
        g_default_logger->set_level((spdlog::level::level_enum)level);
    }

    g_default_logger->set_pattern("[%n][%H:%M:%S][%t][%-8l]%v");
}

}  // namespace chat
